package com.zjdiepu.www.model.yw.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.validation.GroupSequence;

import com.zjdiepu.www.base.core.PageExt;
import com.zjdiepu.www.base.enums.status.ApplyDiviStatus;
import com.zjdiepu.www.base.enums.status.OpenCardStatus;
import com.zjdiepu.www.common.util.CollectionInitUtil;
/**
 * 项目名称：dpqc-parent-manager-rest <br/> 
 * 类名称：YwBusinessQueryRequest <br/>  
 * 类描述：业务查询参数<br/>    
 * 创建人：xiongxiaotun <br/> 
 * 创建时间：2017年4月25日 下午2:20:10  <br/>   
 * 修改人：xiongxiaotun <br/> 
 * 修改时间：2017年4月25日 下午2:20:10   <br/>  
 * 修改备注：    <br/> 
 * @version V1.0   <br/>
 */
@GroupSequence({YwBusinessBaseRequest.class})
@ApiModel(value="YwBusinessBaseRequest", description="业务查询参数", parent = PageExt.class)
public class YwBusinessBaseRequest extends PageExt implements Serializable{
	private static final long serialVersionUID = 1L;
	/**
	 * 客户姓名
	 */
	@ApiModelProperty(name="customerName",required=false,value="客户姓名",example="客户姓名")
	private String customerName;
	
	/**
	 * 客户身份证号
	 */
	@ApiModelProperty(name="customerNo",required=false,value="客户身份证号",example="客户身份证号")
	private String customerNo;
	
	/**
	 * 业务员ID
	 */
	@ApiModelProperty(name="salesmanId",required=false,value="业务员ID",example="业务员ID")
	private String salesmanId;
	
	/**
	 * 业务员编码
	 */
	@ApiModelProperty(name="salesmanCode",required=false,value="业务员编码",example="业务员编码")
	private String salesmanCode;
	
	/**
	 * 业务状态
	 */
	@ApiModelProperty(name="busiStatuses",required=false,value="业务状态",example="业务状态",hidden=true)
	private List<Integer> busiStatuses;
	
	/** 
	* 操作人员 
	*/ 
	@ApiModelProperty(name="operatorId",required=false,value="操作人员",example="操作人员",hidden=true)
	private String operatorId;
	
	/**
	 * 最小状态(包含)
	 */
	@ApiModelProperty(name="minBusiStatus",required=false,value="最小状态(包含)",example="10",hidden=true)
	private Integer minBusiStatus;
	
	/**
	 * 最大状态(包含)
	 */
	@ApiModelProperty(name="maxBusiStatus",required=false,value="最大状态(包含)",example="1000",hidden=true)
	private Integer maxBusiStatus;
	
	/**
	 * 欠资料状态
	 */
	@ApiModelProperty(name="lessInformationStatuses",required=false,value="欠资料状态",example="欠资料状态",hidden=true)
	private List<Integer> lessInformationStatuses;
	
	/** 
	* @author zhangzj
	* @Fields phoneStatus : 电审状态
	* @version V1.0
	*/ 
	@ApiModelProperty(name="phoneStatuses",required=false,value="电审状态",example="电审状态",hidden=true)
	private List<Integer> phoneStatuses;
	
	/**
	 * 对应客户
	 */
	@Deprecated
	@ApiModelProperty(name="customerIds",required=false,value="对应客户",example="对应客户",hidden=true)
	private List<String> customerIds;
	
	/**
	 * or组合业务状态和欠资料
	 */
	@ApiModelProperty(name="busiOrLess",required=false,value="or组合业务状态和欠资料",example="or组合业务状态和欠资料",hidden=true)
	private Boolean busiOrLess;
	/**
	 * or组合业务状态和电审
	 */
	@ApiModelProperty(name="busiOrPhone",required=false,value="or组合业务状态和电审",example="or组合业务状态和电审",hidden=true)
	private Boolean busiOrPhone;
	
	/**
	 * 车辆性质
	 */
	@ApiModelProperty(name="carType",required=false,value="车辆性质",example="车辆性质",hidden=true)
	private String carType;
	
	/**
	 * 资金流转状态
	 */
	@ApiModelProperty(name="addedStatus1",required=false,value="按揭日报表状态",example="按揭日报表状态",hidden=true)
	private Integer addedStatus1;
	/**
	 * 资金流转
	 */
	@ApiModelProperty(name="addedStatus1s",required=false,value="资金流转",example="资金流转")
	private List<Integer> addedStatus1s;
	/**
	 * 通融状态
	 */
	@ApiModelProperty(name="tongrongStatuses",required=false,value="通融状态",example="通融状态",hidden=true)
	private List<Integer> tongrongStatuses;
	
	/**
	 * 最小插入时间
	 */
	@ApiModelProperty(name="minCreated",required=false,value="最小插入时间",example="最小插入时间",hidden=true)
	private Integer minCreated;
	
	/**
	 * 最大插入时间
	 */
	@ApiModelProperty(name="maxCreated",required=false,value="最大插入时间",example="最大插入时间",hidden=true)
	private Integer maxCreated;
	
	/**
	 * 贷款银行
	 */
	@ApiModelProperty(name="bankLoan",required=false,value="贷款银行",example="贷款银行")
	private String bankLoan;
	

	/**
	 * 分期状态
	 * {@link ApplyDiviStatus}
	 */
	@ApiModelProperty(name="applyDiviStatus",required=false,value="分期状态",example="0")
	private Integer applyDiviStatus;
	
	/**
	 * 开卡状态
	 * {@link OpenCardStatus}
	 */
	@ApiModelProperty(name="openCardStatus",required=false,value="开卡状态",example="0")
	private Integer openCardStatus;
	
	/**
	 * 面签状态
	 */
	@ApiModelProperty(name="interviewStatus",required=false,value="面签状态",example="0")
	private Integer interviewStatus;
	
	/**
	 * 面签时间
	 */
	@ApiModelProperty(name="interviewTime",required=false,value="面签时间",example="2017-04-23 14:22:43")
	private Date interviewTime;
	
	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getCustomerNo() {
		return customerNo;
	}

	public void setCustomerNo(String customerNo) {
		this.customerNo = customerNo;
	}

	public Integer getMinBusiStatus() {
		return minBusiStatus;
	}

	public void setMinBusiStatus(Integer minBusiStatus) {
		this.minBusiStatus = minBusiStatus;
	}

	public Integer getMaxBusiStatus() {
		return maxBusiStatus;
	}

	public void setMaxBusiStatus(Integer maxBusiStatus) {
		this.maxBusiStatus = maxBusiStatus;
	}

	public List<Integer> getBusiStatuses() {
		return busiStatuses;
	}

	public void setBusiStatuses(List<Integer> busiStatuses) {
		this.busiStatuses = busiStatuses;
	}
	
	public String getOperatorId() {
		return operatorId;
	}

	public void setOperatorId(String operatorId) {
		this.operatorId = operatorId;
	}

	public List<Integer> getLessInformationStatuses() {
		return lessInformationStatuses;
	}

	public void setLessInformationStatuses(List<Integer> lessInformationStatuses) {
		this.lessInformationStatuses = lessInformationStatuses;
	}

	public List<Integer> getPhoneStatuses() {
		return phoneStatuses;
	}

	public void setPhoneStatuses(List<Integer> phoneStatuses) {
		this.phoneStatuses = phoneStatuses;
	}

	@Deprecated
	public List<String> getCustomerIds() {
		return customerIds;
	}
	@Deprecated
	public void setCustomerIds(List<String> customerIds) {
		this.customerIds = customerIds;
	}

	public String getSalesmanId() {
		return salesmanId;
	}

	public void setSalesmanId(String salesmanId) {
		this.salesmanId = salesmanId;
	}

	public String getSalesmanCode() {
		return salesmanCode;
	}

	public void setSalesmanCode(String salesmanCode) {
		this.salesmanCode = salesmanCode;
	}

	public Boolean getBusiOrLess() {
		return busiOrLess;
	}

	public void setBusiOrLess(Boolean busiOrLess) {
		this.busiOrLess = busiOrLess;
	}
	
	public Boolean getBusiOrPhone() {
		return busiOrPhone;
	}

	public void setBusiOrPhone(Boolean busiOrPhone) {
		this.busiOrPhone = busiOrPhone;
	}

	public String getCarType() {
		return carType;
	}

	public void setCarType(String carType) {
		this.carType = carType;
	}
	
	public Integer getAddedStatus1() {
		return addedStatus1;
	}

	public void setAddedStatus1(Integer addedStatus1) {
		this.addedStatus1 = addedStatus1;
	}
	
	public List<Integer> getAddedStatus1s() {
		return addedStatus1s;
	}

	public void setAddedStatus1s(List<Integer> addedStatus1s) {
		this.addedStatus1s = addedStatus1s;
	}

	public List<Integer> getTongrongStatuses() {
		return tongrongStatuses;
	}

	public void setTongrongStatuses(List<Integer> tongrongStatuses) {
		this.tongrongStatuses = tongrongStatuses;
	}

	public Integer getMinCreated() {
		return minCreated;
	}

	public void setMinCreated(Integer minCreated) {
		this.minCreated = minCreated;
	}

	public Integer getMaxCreated() {
		return maxCreated;
	}

	public void setMaxCreated(Integer maxCreated) {
		this.maxCreated = maxCreated;
	}
	
	public final Integer getInterviewStatus() {
		return interviewStatus;
	}

	public final void setInterviewStatus(Integer interviewStatus) {
		this.interviewStatus = interviewStatus;
	}

	public final Date getInterviewTime() {
		return interviewTime;
	}

	public final void setInterviewTime(Date interviewTime) {
		this.interviewTime = interviewTime;
	}

	/**
	 * @author xiongxiaotun <br/>
	 * @Title: addBusiStatuse  <br/>
	 * @Description: 添加业务状态 <br/>
	 * @param busiStatuse
	 * @return
	 * @version V1.0  <br/>
	 */
	public YwBusinessBaseRequest addBusiStatus(Integer busiStatus){
		if(busiStatuses == null) {
			busiStatuses = CollectionInitUtil.emptyList();
		}
		if(busiStatus != null) {
			busiStatuses.add(busiStatus);
		}
		return this;
	}
	/**
	 * @author xiongxiaotun <br/>
	 * @Title: addAddedStatus1  <br/>
	 * @Description: 添加资金流转状态 <br/>
	 * @param addedStatus1
	 * @return
	 * @version V1.0  <br/>
	 */
	public YwBusinessBaseRequest addAddedStatus1(Integer addedStatus1){
		if(addedStatus1s == null) {
			addedStatus1s = CollectionInitUtil.emptyList();
		}
		if(addedStatus1s != null) {
			addedStatus1s.add(addedStatus1);
		}
		return this;
	}
	/**
	 * @author xiongxiaotun <br/>
	 * @Title: addLessInformationStatus  <br/>
	 * @Description: 添加欠资料状态 <br/>
	 * @param lessInformationStatus
	 * @return
	 * @version V1.0  <br/>
	 */
	public YwBusinessBaseRequest addLessInformationStatus(Integer lessInformationStatus){
		if(lessInformationStatuses == null) {
			lessInformationStatuses = CollectionInitUtil.emptyList();
		}
		if(lessInformationStatus != null) {
			lessInformationStatuses.add(lessInformationStatus);
		}
		return this;
	}
	
	/** 
	* @author xiongxt
	* @Title: addPhoneStatus 
	* @Description: 添加电审状态
	* @param @param phoneStatus
	* @param @return    设定文件 
	* @return YwBusinessQueryRequest    返回类型 
	* @version V1.0
	* @throws 
	*/
	public YwBusinessBaseRequest addPhoneStatus(Integer phoneStatus){
		if(phoneStatuses == null) {
			phoneStatuses = CollectionInitUtil.emptyList();
		}
		if(phoneStatus != null) {
			phoneStatuses.add(phoneStatus);
		}
		return this;
	}
	
	/**
	 * @author xiongxiaotun <br/>
	 * @Title: addTongrongStatus  <br/>
	 * @Description: 添加通融状态 <br/>
	 * @param busiStatuse
	 * @return
	 * @version V1.0  <br/>
	 */
	public YwBusinessBaseRequest addTongrongStatus(Integer tongrongStatus){
		if(tongrongStatuses == null) {
			tongrongStatuses = CollectionInitUtil.emptyList();
		}
		if(tongrongStatus != null) {
			tongrongStatuses.add(tongrongStatus);
		}
		return this;
	}

	public Integer getApplyDiviStatus() {
		return applyDiviStatus;
	}

	public void setApplyDiviStatus(Integer applyDiviStatus) {
		this.applyDiviStatus = applyDiviStatus;
	}

	public Integer getOpenCardStatus() {
		return openCardStatus;
	}

	public void setOpenCardStatus(Integer openCardStatus) {
		this.openCardStatus = openCardStatus;
	}

	public String getBankLoan() {
		return bankLoan;
	}

	public void setBankLoan(String bankLoan) {
		this.bankLoan = bankLoan;
	}
}
